{% extends "base.html" %} {% from "_event.html" import event_row with context %} {% block title %}{{ chapter.title if chapter else 'Log' }} ยท {{ app_name }}{% endblock %} {#- The Log, optionally narrowed to a window (M9 #53): a saved chapter, or a start/end range. Every link keeps the window (`win_q`), so the module chips, the pager and the export links all mean "this window". Grouped by LOCAL day, newest first. -#} {% set wq = ('&' ~ win_q) if win_q else '' %} {% block body %}

{% if chapter %}๐Ÿ“– {{ chapter.title }}{% else %}Log{% endif %} {{ total }} event{{ 's' if total != 1 }}{% if sl %} ยท {{ sl.lo|local('%b %-d, %Y') }} โ†’ {{ (sl.hi - 1)|local('%b %-d, %Y') }}{% if chapter and chapter.hi is none %} (open โ€” runs to now){% endif %}{% endif %}

๐Ÿ—“ Range {% if sl %}{{ 'chapter' if chapter else 'custom range' }} โ€” clear{% else %}all time โ€” pick a chapter or a range{% endif %}
{% for p in presets %}{{ p.chip }}{% endfor %}
{% if saved %}
{% for c in saved %}๐Ÿ“– {{ c.title }}{% endfor %}
{% endif %}
{% if module %}{% endif %}
{% if sl %}
{% if not chapter %}
{#- a preset chip browses as whole days but saves its EXACT window (kind + ref โ†’ resolve()) -#} {% if preset %} {% else %} {% endif %}
{% else %}

๐Ÿ“– Read it as a story All chapters โ†’

{% endif %}

โฌ‡ this window (zip, with photos) โฌ‡ data only daily.csv ยท entries.csv ยท events.csv ยท slice.json

๐Ÿ”ด Unencrypted, with every reflection in the window in full โ€” the copy you keep, not the copy you share. A slice is not a backup: restore only from the full export.

{% endif %}
all {% for m in modules %}{{ m }}{% endfor %}
{% if days %} {% for d in days %}

{{ d.ts|local('%A %b %-d, %Y') }} {{ d.events|length }}

{% endfor %} {% else %}

{{ 'Nothing in this window.' if sl else 'Nothing here yet.' }}

{% endif %} {% if pages > 1 %}
{% if page > 1 %}โ† newer{% endif %} page {{ page }} / {{ pages }} {% if page < pages %}older โ†’{% endif %}
{% endif %}
{% endblock %}